<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Attach a popup to a marker instance</title>
    <meta
      name="viewport"
      content="initial-scale=1,maximum-scale=1,user-scalable=no"
    />
    <script src="../../lib/mapbox-gl.js"></script>
    <link href="../../lib/mapbox-gl.css" rel="stylesheet" />
    <script src="../../lib/axios.min.js"></script>
    <style>
      body {
        margin: 0;
        padding: 0;
      }
      #map {
        position: absolute;
        top: 0;
        bottom: 0;
        width: 100%;
      }
      #marker {
        background-image: url('http://localhost:8080/mapbox-gl-js-offline-examples/data/images/icon/washington-monument.jpg');
        background-size: cover;
        width: 50px;
        height: 50px;
        border-radius: 50%;
        cursor: pointer;
      }

      .mapboxgl-popup {
        max-width: 200px;
      }
    </style>
  </head>
  <body>
    <div id="map"></div>
    <script>
      let baseDataUrl = `http://${localStorage.getItem(
        "host"
      )}/mapbox-gl-js-offline-examples`;
      axios
        .get(
          baseDataUrl +
            `/resources/styles/${localStorage.getItem(
              "mbtilesStylesName"
            )}.json`
        )
        .then((res) => {
          let data = res.data;
          initMap(data);
        })
        .catch((err) => {
          console.error(err);
        });

      var monument = [-77.0353, 38.8895];
      function initMap(style) {
        let map = new mapboxgl.Map({
          container: "map",
          center: monument,
          zoom: 15,
          style: style,
        });

        // create the popup
        var popup = new mapboxgl.Popup({ offset: 25 }).setText(
          "Construction on the Washington Monument began in 1848."
        );

        // create DOM element for the marker
        var el = document.createElement("div");
        el.id = "marker";

        // create the marker
        new mapboxgl.Marker(el)
          .setLngLat(monument)
          .setPopup(popup) // sets a popup on this marker
          .addTo(map);
      }
    </script>
  </body>
</html>
